import request from "@/utils/request";

const SITE_BASE_URL = "/admin/site";

const SiteAPI = {
  /**
   * 获取站点分页列表
   * @param {Object} params 查询参数
   * @returns {Promise} 站点列表
   */
  getPage(params) {
    return request({
      url: `${SITE_BASE_URL}/page`,
      method: "get",
      params: params,
    });
  },

  /**
   * 获取站点表单数据
   * @param {string} id 站点ID
   * @returns {Promise} 站点表单数据
   */
  getFormData(id) {
    return request({
      url: `${SITE_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /**
   * 添加站点
   * @param {Object} data 站点表单数据
   * @returns {Promise} 添加结果
   */
  create(data) {
    return request({
      url: `${SITE_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 修改站点
   * @param {Object} data 站点表单数据
   * @returns {Promise} 修改结果
   */
  update(data) {
    return request({
      url: `${SITE_BASE_URL}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 删除站点
   * @param {string} id 站点ID
   * @returns {Promise} 删除结果
   */
  delete(id) {
    return request({
      url: `${SITE_BASE_URL}/${id}`,
      method: "delete",
    });
  },

  /**
   * 获取站点的区域树
   * @param {string} siteId 站点ID
   * @returns {Promise} 区域树数据
   */
  getAreaTree(siteId) {
    return request({
      url: `${SITE_BASE_URL}/${siteId}/areas`,
      method: "get",
    });
  },

  /**
   * 获取完整的层级数据（客户->站点->区域）
   * @returns {Promise} 完整的层级数据
   */
  getFullHierarchy() {
    return request({
      url: `${SITE_BASE_URL}/hierarchy`,
      method: "get",
    });
  },

  /**
   * 获取地图标记列表
   * @param {Object} params 查询参数
   * @returns {Promise} 地图标记列表
   */
  getMapMarkers(params) {
    return request({
      url: `${SITE_BASE_URL}/map/markers`,
      method: "get",
      params: params,
    });
  },

  /**
   * 更新站点地图信息
   * @param {string} id 站点ID
   * @param {Object} data 地图信息数据
   * @returns {Promise} 更新结果
   */
  updateSiteMapInfo(id, data) {
    return request({
      url: `${SITE_BASE_URL}/${id}/map`,
      method: "put",
      data: data,
    });
  },

  /**
   * 批量更新站点地图位置
   * @param {Array} sites 站点列表
   * @returns {Promise} 批量更新结果
   */
  batchUpdateMapPositions(sites) {
    return request({
      url: `${SITE_BASE_URL}/map/batch`,
      method: "put",
      data: sites,
    });
  },

  /**
   * 获取客户下的所有地图标记
   * @param {string} customerId 客户ID
   * @returns {Promise} 客户地图标记列表
   */
  getCustomerMarkers(customerId) {
    return request({
      url: `${SITE_BASE_URL}/customer/${customerId}/markers`,
      method: "get",
    });
  },
};

export default SiteAPI; 